<?php
	// Author: Andy Marti
	// Datum: 19.03.2014
	// ----------------------------------------------------
	// Beschreibung Klasse:
	//   Die Klasse enthält alle Eigenschaften und Methoden der Error Meldungen. 
	//   Sie wird in der Klasse User erzeugt.
	// ----------------------------------------------------
	// Änderungen:
	//
	// ----------------------------------------------------

	/**
	 * Klasse Messages. Enthält alle Methoden und Konstanten für die Fehlermeldungen.
	 *
	 * @author Andy Marti
	 *
	 */
	class Messages {
		// Messages Init.
		public $MsgUnknown = 'Unbekannte Meldung!';
		public $MsgNotInitialized = 'Klasse nicht korrekt initialisiert! %s-Objekt fehlt';
		public $MsgWrongUserId = 'User-ID wurde nicht gesetzt!';
		public $MsgWrongAddressId = 'Address-ID \'%s\' wurde nicht gesetzt!';
		public $MsgWrongImageId = 'Image-ID \'%s\' wurde nicht gesetzt!';
		public $MsgWrongMemberId = 'User-ID wurde nicht gesetzt!';
		public $MsgDbUserNotFound = 'User \'%s\' in der Datenbank nicht gefunden!';
		public $MsgDbUserIdNotUnique = 'UserID \'%s\' in der Datenbank nicht eindeutig!';
		public $MsgDbAddressIdNotUnique = 'AddressID \'%s\' in der Datenbank nicht eindeutig!';
		public $MsgDbUpdateQueryFailed = 'Update der Datenbankdaten von \'%s\' fehlgeschlagen!';
		public $MsgDbInsertQueryFailed = 'Insert von \'%s\' in die Datenbank fehlgeschlagen!';
		public $NumNotInitialized = 1010;
		public $NumWrongUserId = 1050;
		public $NumWrongAddressId = 1051;
		public $NumWrongImageId = 1052;
		public $NumWrongMemberId = 1052;
		public $NumDbUserNotFound = 1060;
		public $NumDbUserIdNotUnique = 1100;
		public $NumDbAddressIdNotUnique = 1101;
		public $NumDbUpdateQueryFailed = 1200;
		public $NumDbInsertQueryFailed = 1201;
		
		// Public Methodes.
		/**
		 * 
		 * @param string $messageid 'Message Id.'
		 * @param mixed $options 'Replace %s in the Message.'
		 * @throws ParameterException
		 */
		public function throwMessage($messageid, $options) {
			If (empty($options) == false) {
				$Msg = str_replace('%s', $options, getMessage($messageid));
			}
			throw new ParameterException($Msg, $messageid, NIL);
		}

		// Private Methodes.
		/**
		 * 
		 * @param unknown $messageid
		 */
		 public function getMessage($messageid) {
		 	If ($messageid == $this->NumNotInitialized) {
		 		return $this->MsgNotInitialized;
		 	} elseif ($messageid == $this->NumWrongUserId) {
		 		return $this->MsgNotInitialized;
		 	} elseif ($messageid == $this->NumWrongAddressId) {
		 		return  $this->MsgWrongAddressId;
		 	} elseif ($messageid == $this->NumWrongImagId) {
		 		return  $this->MsgWrongImageId;
		 	} elseif ($messageid == $this->MsgDbUserNotFound) {
		 		return  $this->NumDbUserNotFound;
		 	} elseif ($messageid == $this->NumDbUserIdNotUnique) {
		 		return  $this->MsgDbUserIdNotUnique;
		 	} elseif ($messageid == $this->NumDbAddressIdNotUnique) {
		 		return  $this->MsgDbAddressIdNotUnique;
		 	} elseif ($messageid == $this->NumDbUpdateQueryFailed) {
		 		return  $this->MsgDbUpdateQueryFailed;
		 	} else  {
		 		return $this->MsgUnknown;
		 	}
		 }
		
		// ------------------------------------------------
		// Return Classname.
		public function __toString(){
			return get_class();
		}
		
		 // ------------------------------------------------
		// Contructor, Destructor.
		/**
		 * Construtor. 
		 * 
		 */
		public function __construct(){
		}
		
		/**
		 * Destructor.
		 *
		 */
		public function __destruct(){
			// Destroy internal objects.
		}
	}

?>